package com.ld.control.business.record.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ld.control.business.record.model.ErrorNoticeRecordModel;
import com.ld.control.business.record.vo.resp.ErrorNoticeRecordRespVo;

/**
 * <p>
 * 任务报错后的记录和处理 服务类
 * </p>
 *
 * @author wangfeng
 * @since 2024-05-13
 */
public interface ErrorNoticeRecordService extends IService<ErrorNoticeRecordModel> {


    /**
     * 分页查询结果
     * @param taskExampleCode
     * @param status
     * @param current
     * @param size
     * @return
     */
    IPage<ErrorNoticeRecordRespVo> getPageList(String taskExampleCode, Integer status, Integer current, Integer size);

    /**
     * 添加错误记录
     * @param errorNoticeRecordModel
     */
    void add(ErrorNoticeRecordModel errorNoticeRecordModel);

    /**
     * 重试发送当前指令信息
     * @param id
     */
    void retry(Long id);

    /**
     * 某条命令重发(debug用，慎用)
     * @param processNodeExampleRunningId
     */
    void debugRetry(Long processNodeExampleRunningId);

    /**
     * 跳过当前节点执行下一个节点
     * @param id
     */
    void skip(Long id);

    /**
     * 处理错误
     * @param id
     * @param handleType
     */
    void errorHandle(Long id, Integer handleType);

    /**
     * 获取未处理的错误数量
     * @return
     */
    Integer getErrorCount();

}
